package com.xbongbong.pro.statistic.enums;

import com.xbongbong.i18n.util.I18nMessageUtil;
import lombok.Getter;

/**
 * 统计请求来源枚举
 * @author zcp
 * @version v1.0
 * @date 2019/3/28 10:26
 * @since v1.0
 */
@Getter
public enum ResultFromEnum {
    /**
     * 销售简报、图表：当该值为“hamlet”时代表千人千面请求，需要对返回数据按照idIn的顺序封装图表
     * 业绩目标：当为该值时，不在考核范围的不能过滤，而是要返回一个不在考核范围的信息
     */
    HAMLET("hamlet", "enum.resultFrom.memo.hamlet"),

    /**
     * pc浏览器
     */
    WEB("web", "enum.resultFrom.memo.web"),

    /**
     * pc浏览器-图表中心
     */
    CENTER_WEB("centerWeb", "enum.resultFrom.memo.center_web"),

    /**
     * 移动手机端
     */
    APP("app", "enum.resultFrom.memo.app"),

    /**
     * 钉钉内部访问
     */
    CENTER_APP("centerApp", "enum.resultFrom.memo.center_app"),

    UNKNOWN("unknown", "enum.resultFrom.memo.unknown"),
    ;

    /**
     * 来源标示值
     */
    private String value;

    /**
     * 来源标示中文描述
     */
    private String memo;

    ResultFromEnum(String value, String memo) {
        this.value = value;
        this.memo = memo;
    }

    /**
     * 通过枚举<value>value</value>获得枚举
     *
     * @param value
     * @return ResultFromEnum
     */
    public static ResultFromEnum getByValue(String value) {
        for (ResultFromEnum cacheCode : values()) {
            if (cacheCode.value.equals(value)) {
                return cacheCode;
            }
        }
        return UNKNOWN;
    }

    public String getMemo() {
        return I18nMessageUtil.getMessage(memo);
    }
}
